package com.zlict.admin.domain;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import com.zlict.common.annotation.Excel;
import com.zlict.common.core.domain.BaseEntity;

/**
 * 资产管理-无形资产对象 rd_assets_intangibleassets
 * 
 * @author lqh
 * @date 2025-06-11
 */
@Data
public class RdIntangibleAssets extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** ID */
    private Long id;

    /** 无形资产编号 */
    @Excel(name = "无形资产编号")
    private String intangibleAssetsNumber;

    /** 无形资产名称 */
    @Excel(name = "无形资产名称")
    private String intangibleAssetsName;

    /** 资产类型（0非专利技术 1专利权 2软件） */
    @Excel(name = "资产类型", readConverterExp = "0=非专利技术,1=专利权,2=软件")
    private String assetsType;

    /** 用途类型（0专用 1公用） */
    @Excel(name = "用途类型", readConverterExp = "0=专用,1=公用")
    private String useType;

    /** 来源（0外购 1自行研发 2投资者购入） */
    @Excel(name = "来源", readConverterExp = "0=外购,1=自行研发,2=投资者购入")
    private String source;

    /** 开始摊销时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "开始摊销时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date startAmortizeTime;

    /** 结束摊销时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "结束摊销时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date endAmortizeTime;

    /** 摊销月份 */
    @Excel(name = "摊销月份")
    private String amortizationMonth;

    /** 摊销原值 */
    @Excel(name = "摊销原值")
    private BigDecimal amortizationCost;

    /** 月摊销额(该项不能为空,且数值大于1) */
    @Excel(name = "月摊销额(该项不能为空,且数值大于1)")
    private BigDecimal devalue;

    /** 使用模式(0部门使用，1专人专用，2全部人员) */
    @Excel(name = "使用模式",  readConverterExp = "0=部门使用,1=专人专用,2=全部人员")
    private String useModel;

    /** 使用部门 */
    @Excel(name = "使用部门")
    private Long deptId;

    /** 运行规则 */
    @Excel(name = "运行规则")
    private String useRule;

    /** 运行班次 */
    @Excel(name = "运行班次")
    private String runShifts;

    /** 同时使用（0：否  1：是） */
    @Excel(name = "同时使用", readConverterExp = "0=否,1=是")
    private String sameTimeUse;

    /**无形资产明细列表*/
    private List<RdAssetsAmortizationDetail> rdAssetsAmortizationDetails;
}
